# 定义类 - 数据库工具栏
import pymysql


class DBTools(object):
    # 创建连接
    @classmethod
    def __create_conn(cls):
        conn = pymysql.connect(host="211.103.136.244", port=7061, user="student",
                               password="iHRM_student_2021", database="ihrm", charset="utf8")
        return conn

    # 查询一条语句，是将来用户执行的查询语句
    @classmethod
    def query_one(cls, sql):
        conn = None
        cursor = None
        res = None
        try:
            # 2. 创建连接   使用类名.方法名调用，接收返回值
            conn = DBTools.__create_conn()
            # 3. 创建游标
            cursor = conn.cursor()
            # 4. 执行用户提供的 查询 SQL 语句
            cursor.execute(sql)
            # 5. 从结果集中 获取一条数据
            res = cursor.fetchone()

        except Exception as e:
            print("查询SQL语句错误：", e)

        finally:
            # 6. 关闭游标
            cursor.close()
            # 7. 关闭连接
            conn.close()

            return res

    # 增删改。
    @classmethod
    def iud(cls, sql):
        conn = None
        cursor = None
        try:
            # 2. 创建连接
            conn = DBTools.__create_conn()
            # 3. 创建游标
            cursor = conn.cursor()
            # 4. 执行 增删改版本 sql 语句
            cursor.execute(sql)
            # 5. 执行事务
            conn.commit()
            print("增删改 SQL 版本执行完成")

        except Exception as e:
            print("增删改 SQL 语句错误：", e)
            conn.rollback()

        finally:
            # 6. 关闭游标
            cursor.close()
            # 7. 关闭连接
            conn.close()


if __name__ == '__main__':
    res = DBTools.query_one("select * from ")
    print("sql 查询结果：", res)

    DBTools.iud("")
